<?php

require_once '../DAO/PersonagemDAO.php';
require_once '../view/PersonagemV.php';

class PersonagemControle {

    private $classe;
    private $idOrigem;
    private $cidade;

    function __construct($classe, $origem, $sexo) {
        $this->classe = $classe;
        $this->setOrigemSexo($origem, $sexo);
    }

    function setCidade($cidade) {
        if ($cidade == 'Xanatra') {
            require_once '../classesM/XanatraM.php';
            $this->cidade = 'Xanatra';
        } elseif ($cidade == 'Civar') {
            require_once '../classesM/CivarM.php';
            $this->cidade = 'Civar';
        } elseif ($cidade == 'Brassasi') {
            require_once '../classesM/BrassasiM.php';
            $this->cidade = 'Brassasi';
        }
    }

    function setOrigemSexo($origem, $sexo) {
        if ($origem == 'Xanatra' && $sexo == 'Masculino')
            $this->idOrigem = 1;
        elseif ($origem == 'Xanatra' && $sexo == 'Feminino')
            $this->idOrigem = 2;
        elseif ($origem == 'Civar' && $sexo == 'Masculino')
            $this->idOrigem = 3;
        elseif ($origem == 'Civar' && $sexo == 'Feminino')
            $this->idOrigem = 4;
        elseif ($origem == 'Brassasi' && $sexo == 'Masculino')
            $this->idOrigem = 5;
        elseif ($origem == 'Brassasi' && $sexo == 'Feminino')
            $this->idOrigem = 6;
    }

    function selecioonarPersonagem($nome, $nivel, $forca, $agilidade, $saude, $misticismo, $xp, $nomeClasse, $ouro, $prata, $nivelPericia, $pontos, $nomePericia, $cidade) {
        $aa;
    }

    function getClasse() {
        return $this->classe;
    }

    function getIdOrigem() {
        return $this->idOrigem;
    }

    function getCidade() {
        return $this->cidade;
    }

}

session_start();
$acao = $_REQUEST["acao"];
//var_dump($_SESSION);

switch ($acao) {
    case 'criarPersonagem': {
            $con = new PersonagemDAO();
            $pv = new PersonagemV();
            $limitePersonagem = $con->limitePersonagemPorEmail($_SESSION['id']);
            $pv->limitePersonagem($limitePersonagem);
            $resultado = $con->validarNomePersonagem($_REQUEST['nome']);
            if (!$resultado) {
                $pv->validarNome();
            } elseif ($limitePersonagem) {
                $pv->limitePersonagem();
            } else {
                $personagemControle = new PersonagemControle($_REQUEST['esp'], $_REQUEST['origem'], $_REQUEST['sexo']);
                /* if ($_REQUEST['origem'] == 'Xanatra') {
                  require_once '../classesM/XanatraM.php';
                  $p = new XanatraM();
                  } elseif ($_REQUEST['origem'] == 'Civar') {
                  require_once '../classesM/CivarM.php';
                  $p = new CivarM();
                  } elseif ($_REQUEST['origem'] == 'Brassasi') {
                  require_once '../classesM/BrassasiM.php';
                  $p = new BrassasiM();
                  } */
                $personagemControle->setCidade($_REQUEST['origem']);

                if ($personagemControle->getCidade() == 'Xanatra') {
                    $p = new XanatraM();
                } elseif ($personagemControle->getCidade() == 'Civar') {
                    $p = new CivarM();
                } elseif ($personagemControle->getCidade() == 'Brassasi') {
                    $p = new BrassasiM();
                }



                $p->setOuro(0);
                $p->setPrata(50);
                $p->setNome($_REQUEST['nome']);
                $p->setOrigem($_REQUEST['origem']);
                $p->setSexo($_REQUEST['sexo']);
                if ($personagemControle->getClasse() == 'Guerreiro Nobre' || $personagemControle->getClasse() == 'Lutador de Rua' || $personagemControle->getClasse() == 'Barbaro Sobrevivente')
                    $p->setLutador();
                elseif ($personagemControle->getClasse() == 'Atirador Elite' || $personagemControle->getClasse() == 'Assassino das Sombras' || $personagemControle->getClasse() == 'Arqueiro do Horizonte')
                    $p->setAtirador();
                elseif ($personagemControle->getClasse() == 'Mago Genuino' || $personagemControle->getClasse() == 'Feiticeiro Ilusionista' || $personagemControle->getClasse() == 'Shaman Verdejante')
                    $p->setBruxo();

                $con->setClasseId($_REQUEST['esp']);
                $criado = $con->criarPersonagem($p->getNome(), $p->getNivel(), $p->getForcaBruta(), $p->getAgilidade(), $p->getSaude(), $p->getMisticismo(), $p->getXp(), $_SESSION['id'], $personagemControle->getIdOrigem(), $con->getClasseId(), $_REQUEST['pericia'], $p->getOuro(), $p->getPrata());
                $pv->criadoComSucesso();
                //var_dump($p, $criado);

                $_SESSION['p'] = serialize($p);
            }
            unset($p, $con, $pv, $personagemControle);
        }
        break;
    case 'selecao': {
            //$p = unserialize($_SESSION['p']);  
            //var_dump($_SESSION);
            $pv = new PersonagemV();
            $con = new PersonagemDAO();
            $con->selecionarPersonagem($_SESSION['id']);
            $pc = new PersonagemControle($con->getPersonagem('classe'), $con->getPersonagem('cidade'), $con->getPersonagem('sexo'));
            //var_dump($personagem, $_SESSION, $con->getPersonagem());
            $con->getPersonagem('cidade');
            $pc->setCidade($con->getPersonagem('cidade'));
            $classe = $pc->getCidade().'M';
            $p = new $classe;
            $p->setNome($con->getPersonagem('nome'));
            $p->setForcaBruta($con->getPersonagem('forcaBruta'));
            $p->setAgilidade($con->getPersonagem('agilidade'));
            $p->setSaude($con->getPersonagem('saude'));
            $p->setMisticismo($con->getPersonagem('misticismo'));
            $p->setXp($con->getPersonagem('xp'));
            $p->setOuro($con->getPersonagem('ouro'));
            $p->setPrata($con->getPersonagem('prata'));
            $p->setEnergiaVital();
            $p->setStamina();
            $p->setPontosDeMagia();
            print $pv->selecionarPersonagem($p->getNome(), $p->getNivel(), $p->getForcaBruta(), $p->getAgilidade(), $p->getSaude(), $p->getMisticismo(), $p->getXp(), $con->getPersonagem('nomeClasse'), $p->getOuro(), $p->getPrata(), $con->getPersonagem('nivelPericia'), $con->getPersonagem('nomePericia'), $con->getPersonagem('cidade'), $p->getEnergiaVital(), $p->getStamina(), $p->getPontosDeMagia());
            //print 'dnre';
        }
        break;
        case "avatar":{
         $pDao= new PersonagemDAO();
         $pDao->setAvatar($_SESSION['id']);
         $pv= new PersonagemV();
         $pv->setAvatar($pDao->getAvatar());
                  
        }
        break;
        case 'mudarAvatar':{
         $pDao = new PersonagemDAO();
         $pDao->insertAvatar($_REQUEST['avatar'], $_SESSION['id']);
         echo "<script language=\"javascript\">window.location.reload();</script>";
        }
        break;
    default :
        return null;
}
?>